<?php


namespace app\controller\index;
class DataMap
{
    /**
     * @return array
     */
    public function actionTest(){
        $map=self::GetMap(false);
    }
    public static function GetMap($is_cache=true){
        if($is_cache) {
            if (is_file(__DIR__ . "/map.json")) {
                return json_decode(file_get_contents(__DIR__ . "/map.json"), true);
            }
        }
//        $code=<<<data
//001.001.032.005.005.010.002
//001.001.032.005.005.010.002.801
//001.001.032.005.005.010.002.802
//001.001.032.005.005.010.002.802.001
//001.001.032.005.005.010.002.802.002
//001.001.032.005.005.010.002.802.003
//001.001.032.005.005.010.002.803
//001.001.032.005.005.010.002.803.001
//001.001.032.005.005.010.002.803.002
//001.001.032.005.005.010.002.804
//001.001.032.005.005.010.002.804.001
//001.001.032.005.005.010.002.804.002
//001.001.032.005.005.010.002.805
//001.001.032.005.005.010.002.806
//001.001.032.005.005.010.002.806.001
//001.001.032.005.005.010.002.806.002
//001.001.032.005.005.010.002.806.003
//001.001.032.005.005.010.002.807
//001.001.032.005.005.010.002.807.001
//001.001.032.005.005.010.002.807.002
//001.001.032.005.005.010.002.808
//001.001.032.005.005.010.002.808.001
//001.001.032.005.005.010.002.808.002
//001.001.032.005.005.010.002.808.003
//001.001.032.005.005.010.002.808.004
//001.001.032.005.005.010.002.809
//001.001.032.005.005.010.002.810
//001.001.032.005.005.010.002.810.001
//001.001.032.005.005.010.002.810.002
//001.001.032.005.005.010.002.811
//001.001.032.005.005.010.002.811.001
//001.001.032.005.005.010.002.811.002
//001.001.032.005.005.010.002.811.003
//001.001.032.005.005.010.002.812
//001.001.032.005.005.010.002.812.001
//001.001.032.005.005.010.002.812.002
//001.001.032.005.005.010.002.812.003
//001.001.032.005.005.010.002.813
//001.001.032.005.005.010.002.813.001
//001.001.032.005.005.010.002.813.002
//001.001.032.005.005.010.002.813.003
//001.001.032.005.005.010.002.814
//001.001.032.005.005.010.002.814.001
//001.001.032.005.005.010.002.814.002
//001.001.032.005.005.010.002.814.003
//001.001.032.005.005.010.002.814.004
//001.001.032.005.005.010.002.815
//001.001.032.005.005.010.002.815.001
//001.001.032.005.005.010.002.815.002
//001.001.032.005.005.010.002.890
//001.001.032.005.005.010.002.891
//001.001.032.005.005.010.002.892
//001.001.032.005.005.010.002.893
//001.001.032.005.005.010.002.894
//001.001.032.005.005.010.002.895
//001.001.032.005.005.010.002.896
//001.001.032.005.005.010.002.897
//001.001.032.005.005.010.002.898
//data;
      $party=<<<data
中共苏州市吴江区同里镇机关第二支部
中共苏州市吴江区同里镇综合执法局支部委员会
中共苏州市吴江区同里商业有限公司支部委员会
中共苏州市吴江区同里镇叶建村总支部委员会
中共苏州市吴江区同里镇叶建村叶建支部委员会
中共苏州市吴江区同里镇叶建村北圩支部委员会
中共苏州市吴江区同里镇叶建村双庙支部委员会
中共苏州市吴江区同里镇叶建村湖南支部委员会
中共苏州市吴江区同里镇屯村社区支部委员会
中共苏州市吴江区同里镇屯渔社区总支部委员会
中共苏州市吴江区同里镇屯渔社区湖滨支部委员会
中共苏州市吴江区同里镇屯渔社区屯村支部委员会
中共苏州市吴江区同里镇富渔社区支部委员会
中共苏州市吴江区同里镇肖甸湖村总支部委员会
中共苏州市吴江区同里镇肖甸湖村横港支部委员会
中共苏州市吴江区同里镇肖甸湖村张家港支部委员会
中共苏州市吴江区同里镇肖甸湖村肖甸湖支部委员会
中共苏州市吴江区同里镇白蚬湖村总支部委员会
中共苏州市吴江区同里镇白蚬湖村东浜支部委员会
中共苏州市吴江区同里镇白蚬湖村旺东港支部委员会
中共苏州市吴江区同里镇白蚬湖村三合支部委员会
中共苏州市吴江区同里镇水产养殖总场支部委员会
中共苏州市吴江区同里镇机关第一支部
中共苏州市吴江区同里镇委员会
中共苏州市吴江区同里镇东新社区委员会
中共苏州市吴江区同里镇东新社区东新支部委员会
中共苏州市吴江区同里镇东新社区南新支部委员会
中共苏州市吴江区同里镇东新社区三元支部委员会
中共苏州市吴江区同里镇鱼行社区委员会
中共苏州市吴江区同里镇鱼行社区富观支部委员会
中共苏州市吴江区同里镇鱼行社区上元支部委员会
中共苏州市吴江区同里镇鱼行社区新填支部委员会
中共苏州市吴江区同里镇鱼行社区东溪支部委员会
中共苏州市吴江区同里镇富土社区委员会
中共苏州市吴江区同里镇富土社区便民服务中心工作站支部委员会
中共苏州市吴江区同里镇公房管理办公室支部委员会
中共苏州同里国际旅游开发有限公司支部委员会
中共苏州市吴江区同里镇人民代表大会主席团支部委员会
中共苏州市吴江区同里中学支部委员会
中共苏州市吴江区同里机关退休第一支部委员会
中共苏州市吴江区同里机关退休第二支部委员会
中共苏州市吴江区同里镇屯村机关退休支部委员会
中共苏州市吴江华衍水务有限公司同里屯村供水服务部支部委员会
中共苏州市吴江区同里粮管所支部委员会
中共苏州市吴江区同里敬老院联合支部委员会
中共中国邮政集团公司苏州市同里支局支部委员会
中共中国邮政集团公司苏州市屯村支局支部委员会
中共苏州市吴江区同里镇屯村卫生院支部委员会
中共苏州市吴江区屯村实验小学支部委员会
中共苏州市吴江区水利局同里水利管理服务站支部委员会
中共苏州市吴江区同里镇卫生院支部委员会
中共苏州市吴江区同里交通运输管理所支部委员会
中共苏州市吴江区同里实验小学支部委员会
中共苏州市吴江区同里镇屯南村委员会
中共苏州市吴江区同里镇屯南村邱舍支部委员会
中共苏州市吴江区同里镇屯南村澄墟支部委员会
中共苏州市吴江区同里镇屯南村东港支部委员会
中共苏州市吴江区同里镇屯南村罗里石支部委员会
中共苏州市吴江区同里镇屯溪村总支部委员会
中共苏州市吴江区同里镇屯溪村农业支部委员会
中共苏州市吴江区同里镇屯溪村工业支部委员会
中共苏州市吴江区同里镇屯溪村老年支部委员会
中共苏州市吴江区同里镇湘溇村总支部委员会
中共苏州市吴江区同里镇湘溇村小湘支部委员会
中共苏州市吴江区同里镇湘溇村双溇支部委员会
中共苏州市吴江区同里镇合心村总支部委员会
中共苏州市吴江区同里镇合心村第一支部委员会
中共苏州市吴江区同里镇合心村第二支部委员会
中共苏州市吴江区同里镇合心村第三支部委员会
中共苏州市吴江区同里镇北联村委员会
中共苏州市吴江区同里镇北联村韩墅支部委员会
中共苏州市吴江区同里镇北联村裴厍支部委员会
中共苏州市吴江区同里镇北联村旺塔支部委员会
中共苏州市吴江区同里镇北联村大南港支部委员会
中共苏州市吴江区同里镇北联村梅湾支部委员会
中共苏州市吴江区同里镇北联村粮油农机专业合作社支部委员会
中共苏州市吴江区同里镇北联村蔬菜渔业专业合作社支部委员会
中共苏州市吴江区同里镇九里湖村委员会
中共苏州市吴江区同里镇九里湖村后浜支部委员会
中共苏州市吴江区同里镇九里湖村张塔支部委员会
中共苏州市吴江区同里镇九里湖村群益支部委员会
中共苏州市吴江区同里镇九里湖村九里支部委员会
中共苏州市吴江区同里镇文安村总支部委员会
中共苏州市吴江区同里镇文安村工业支部委员会
中共苏州市吴江区同里镇文安村农业支部委员会
中共苏州市吴江区同里镇文安村老年支部委员会
中共苏州市吴江区同里镇田厍村总支部委员会
中共苏州市吴江区同里镇田厍村第一支部委员会
中共苏州市吴江区同里镇田厍村第二支部委员会
中共苏州市吴江区同里镇田厍村第三支部委员会
data;
        $code=<<<code
001.001.032.005.005.010.004.921
001.001.032.005.005.010.004.922
001.001.032.005.005.010.004.923
001.001.032.005.005.010.004.913
001.001.032.005.005.010.004.913.001
001.001.032.005.005.010.004.913.002
001.001.032.005.005.010.004.913.003
001.001.032.005.005.010.004.913.004
001.001.032.005.005.010.004.914
001.001.032.005.005.010.004.915
001.001.032.005.005.010.004.915.001
001.001.032.005.005.010.004.915.002
001.001.032.005.005.010.004.916
001.001.032.005.005.010.004.917
001.001.032.005.005.010.004.917.001
001.001.032.005.005.010.004.917.002
001.001.032.005.005.010.004.917.003
001.001.032.005.005.010.004.918
001.001.032.005.005.010.004.918.001
001.001.032.005.005.010.004.918.002
001.001.032.005.005.010.004.918.003
001.001.032.005.005.010.004.919
001.001.032.005.005.010.004.920
001.001.032.005.005.010.004
001.001.032.005.005.010.004.111
001.001.032.005.005.010.004.111.001
001.001.032.005.005.010.004.111.002
001.001.032.005.005.010.004.111.004
001.001.032.005.005.010.004.112
001.001.032.005.005.010.004.112.001
001.001.032.005.005.010.004.112.002
001.001.032.005.005.010.004.112.003
001.001.032.005.005.010.004.112.004
001.001.032.005.005.010.004.555
001.001.032.005.005.010.004.555.001
001.001.032.005.005.010.004.877
001.001.032.005.005.010.004.888
001.001.032.005.005.010.004.889
001.001.032.005.005.010.004.890
001.001.032.005.005.010.004.891
001.001.032.005.005.010.004.892
001.001.032.005.005.010.004.893
001.001.032.005.005.010.004.894
001.001.032.005.005.010.004.895
001.001.032.005.005.010.004.896
001.001.032.005.005.010.004.897
001.001.032.005.005.010.004.898
001.001.032.005.005.010.004.899
001.001.032.005.005.010.004.900
001.001.032.005.005.010.004.901
001.001.032.005.005.010.004.902
001.001.032.005.005.010.004.903
001.001.032.005.005.010.004.904
001.001.032.005.005.010.004.905
001.001.032.005.005.010.004.905.001
001.001.032.005.005.010.004.905.002
001.001.032.005.005.010.004.905.004
001.001.032.005.005.010.004.905.005
001.001.032.005.005.010.004.906
001.001.032.005.005.010.004.906.001
001.001.032.005.005.010.004.906.002
001.001.032.005.005.010.004.906.003
001.001.032.005.005.010.004.907
001.001.032.005.005.010.004.907.001
001.001.032.005.005.010.004.907.003
001.001.032.005.005.010.004.908
001.001.032.005.005.010.004.908.001
001.001.032.005.005.010.004.908.002
001.001.032.005.005.010.004.908.003
001.001.032.005.005.010.004.909
001.001.032.005.005.010.004.909.001
001.001.032.005.005.010.004.909.002
001.001.032.005.005.010.004.909.003
001.001.032.005.005.010.004.909.006
001.001.032.005.005.010.004.909.007
001.001.032.005.005.010.004.909.008
001.001.032.005.005.010.004.909.009
001.001.032.005.005.010.004.910
001.001.032.005.005.010.004.910.001
001.001.032.005.005.010.004.910.002
001.001.032.005.005.010.004.910.003
001.001.032.005.005.010.004.910.005
001.001.032.005.005.010.004.911
001.001.032.005.005.010.004.911.001
001.001.032.005.005.010.004.911.002
001.001.032.005.005.010.004.911.003
001.001.032.005.005.010.004.912
001.001.032.005.005.010.004.912.001
001.001.032.005.005.010.004.912.002
001.001.032.005.005.010.004.912.003
code;

//        $code=str_replace('\r\n',"",$code);
//        $name=str_replace('\r\n',"",$party);

        $code=explode(PHP_EOL,$code);
//        return $code;
//        return $code;
        $name=explode(PHP_EOL,$party);
        $result=[];
        foreach ($name as $key=>$value){
            $result[$value]='a'.str_replace(".","",$code[$key]);
        }
        $map=[

        ];
        $da=$result;
//        print_r($result);die();
        foreach ($result as $name=>$code){
            $map[$name]=[$name];

            foreach ($da as $name1=>$code1){
                if(strrpos($code1,$code)!==false){
                    $map[$name][]=$name1;
                }
//                if(strrpos($code1,$code)!==false){
//////
//////               }
            }

//            $map[$name]=array_unique($map[$name]);
        }
//        print_r($map);die();
        return $map;
    }
    public static function GetNum($party_name){
        $map=self::GetMap();
        if(empty($map[$party_name])){
            $map[$party_name]=[];
        }
        $map[$party_name][]=$party_name;
        return PartyUser::find()
            ->andWhere(["in","party_name",$map[$party_name]])
            ->count();

    }
}